With visible-completions, only bind RET when completion is selected
authorSpencer Baugh <sbaugh@janestreet.com>
Tue, 27 Feb 2024 20:42:38 +0000 (15:42 -0500)
committerJuri Linkov <juri@linkov.net>
Fri, 15 Mar 2024 07:40:48 +0000 (09:40 +0200)
commit9dcb28d6014f72e5f52ad46d6141e9be4e11bfa5
tree80eb505300717f515989353e69e03625efdc2607
parent09ab66935154ea0cc4a351b8320bc0e9276b7780
With visible-completions, only bind RET when completion is selected

Previously, if minibuffer-visible-completions was non-nil, we bound RET
whenever the *Completions* buffer was visible.  This meant that RET in
completion-in-region would not enter a newline, which is a somewhat
annoying behavior change from minibuffer-visible-completions=nil.

Now, we only bind RET when a completion is selected.  This means
RET will newline in completion-in-region.

So that completion help continues to suggest the correct keys,
we also add minibuffer-visible-completions--always-bind.  When
let-bound to a non-nil value, it makes the
minibuffer-visible-completions binds always active.  We let-bind
it around substitute-command-keys.

* lisp/minibuffer.el (minibuffer-visible-completions--always-bind)
(minibuffer-visible-completions--filter): Add.
(minibuffer-visible-completions-bind): Use
minibuffer-visible-completions--filter.  (bug#68801)
* lisp/simple.el (minibuffer-visible-completions--always-bind)
(completion-setup-function): Let-bind
minibuffer-visible-completions--always-bind so the completion
help is correct.
lisp/minibuffer.el
lisp/simple.el